package com.xx.ems.dao.impl;

import java.util.HashSet;
import java.util.Set;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.xx.ems.dao.UserLoginDao;
import com.xx.ems.model.Action;
import com.xx.ems.model.Roles;
import com.xx.ems.model.Users;
import com.xx.ems.system.BaseDao;

@Repository(value="userLoginDao")
@Transactional
public class UserLoginDaoImpl extends BaseDao implements UserLoginDao {
	@Override
	public Users userCheck(String account, String password) {
		/**
		 * 判断用户输入的信息是否正确
		 */
		Users user = (Users) getCurrentSession().createQuery("from Users user where user.account = '"+account+"' and user.password = '"+password+"'").uniqueResult();
		return user;
	}

	@Override
	public Set<Action> getActionListByAccont(String account) {
		/**
		 * 判断用户输入的信息是否正确
		 */
		Users user = (Users) getCurrentSession().createQuery("from Users user where user.account = '"+account+"'").uniqueResult();
		/**
		 * 用户拥有的权限集
		 */
		Set<Action> user_actions = new HashSet<Action>();
		/**
		 * 获取用户所拥有的角色
		 */
		Set<Roles> roles = user.getRoles();
		/**
		 * 根据所拥有的角色获取相应的权限
		 */
		for (Roles role : roles) {
			/**
			 * 获取该角色拥有的权限
			 */
			Set<Action> action = role.getAction();
			/**
			 * 添加到权限集
			 */
			user_actions.addAll(action);
		}
		return user_actions;
	}
}